package com.jiajia.study.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jiajia.common.utils.PageUtils;
import com.jiajia.study.product.entity.AttrEntity;
import com.jiajia.study.product.entity.AttrGroupEntity;
import com.jiajia.study.product.vo.AttrGroupRelationVo;
import com.jiajia.study.product.vo.AttrGroupWithAttrVO;

import java.util.List;
import java.util.Map;

/**
 * 属性分组
 *
 * @author zjj
 * @email zjj@qq.com
 * @date 2025-06-09 15:37:17
 */
public interface AttrGroupService extends IService<AttrGroupEntity> {

    PageUtils queryPage(Map<String, Object> params);

    PageUtils queryPage(Map<String, Object> params,Long categoryId);

    /**
     * 根据分组id获取分组信息
     * @param attrId    分组id
     * @return          分组的属性列表
     */
    List<AttrEntity> getRelationAttr(Long attrId);

    /**
     * 查询未关联分组的属性
     * @param attrGroupId   属性分组
     * @param params        查询条件
     * @return              分页信息
     */
    PageUtils attrNoRelation(Long attrGroupId, Map<String, Object> params);

    /**
     * 保存属性分组和属性的关联关系
     * @param attrGroupRelationVos  属性分组和属性关联关系
     */
    void saveRelation(List<AttrGroupRelationVo> attrGroupRelationVos);

    /**
     * 删除关联关系
     * @param relationVos   关联关系
     */
    void deleteRelation(AttrGroupRelationVo[] relationVos);

    /**
     * 根据三级分类id查询分类分组，以及分组属性
     * @param catelogId     三级分类
     * @return              分组信息
     */
    List<AttrGroupWithAttrVO> getAttrgroupWithAttrs(Long catelogId);
}

